package cn.hyatt.auth.service;

import cn.hyatt.auth.dto.systemRole.SystemRoleFindDto;
import cn.hyatt.auth.dto.systemRole.SystemRoleSaveDto;
import cn.hyatt.auth.dto.systemRole.SystemRoleUpdateDto;
import cn.hyatt.auth.dto.systemRole.SystemRoleVo;
import cn.hyatt.auth.entity.SystemRole;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 系统角色-服务接口
 *
 * @author hyatt
 */
public interface SystemRoleService extends IService<SystemRole> {
    /**
     * 按列表查找
     *
     * @param dto 查找条件对象
     * @return 结果
     */
    List<SystemRole> findByList(SystemRoleFindDto dto);

    /**
     * 按页面查找
     *
     * @param dto 查找条件对象
     * @return 结果
     */
    IPage<SystemRole> findByPage(SystemRoleFindDto dto);

    /**
     * 按用户 ID 查找
     *
     * @param userId 用户Id
     * @return 结果
     */
    List<SystemRole> findByUserId(Long userId);

    /**
     * 保存
     *
     * @param dto 保存数据对象
     */
    void save(SystemRoleSaveDto dto);

    /**
     * 更新
     *
     * @param id  ID
     * @param dto 更新数据对象
     */
    void update(Long id, SystemRoleUpdateDto dto);

    /**
     * 按 Id 删除
     *
     * @param id ID
     */
    void deleteById(Long id);

    /**
     * 转 Vo 对象
     *
     * @param entity 实体对象
     * @return 结果
     */
    SystemRoleVo toVo(SystemRole entity);
}
